﻿using GalaSoft.MvvmLight.Messaging;

namespace Songhay.Mvvm.Models
{
    /// <summary>
    /// Defines the conventional MVVM Light Message.
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public class LightMessage<T> : GenericMessage<T>, ILightMessage
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="LightMessage&lt;T&gt;"/> class.
        /// </summary>
        /// <param name="content">The content.</param>
        public LightMessage(T content)
            : base(content)
        {
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="LightMessage&lt;T&gt;"/> class.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="content">The content.</param>
        public LightMessage(object sender, T content)
            : base(sender, content)
        {
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="LightMessage&lt;T&gt;"/> class.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="target">The target.</param>
        /// <param name="content">The content.</param>
        public LightMessage(object sender, object target, T content)
            : base(sender, target, content)
        {
        }

        /// <summary>
        /// Gets or sets the display text.
        /// </summary>
        /// <value>The display text.</value>
        public string DisplayText { get; set; }

        /// <summary>
        /// Gets or sets the source.
        /// </summary>
        /// <value>The source.</value>
        public LightMessageSource Source { get; set; }

        /// <summary>
        /// Gets or sets the unique id.
        /// </summary>
        /// <value>
        /// The unique id.
        /// </value>
        public string UniqueId { get; set; }
    }
}
